Service oriented architecture (SOA), Business Process Management (BPM), and cloud-based architectures are known paradigms in recent times. Cloud computing concepts include, for example, automation, virtualization, metering, and monitoring. Cloud computing further includes service based computing layers, such as, Software-as-a-Service (SaaS), Platform-as-a-Service (PasS) and Infrastructure-as-a-Service (IaaS). Existing enterprises, including, for example, telecom companies or insurance companies, have business processes implemented through BPM. Moreover, both of these types of enterprises may have BPM applications with short-running or long running processes, which may be SOA or non-SOA.
Moreover, today's BPM software environment can be complex, with processes referencing different input data sources and master data repositories, and writing output data to different formats and data repositories. Business rules may be separated into repositories and referenced through rules engines. Processes may be versioned, and multiple versions of a process definition or process template may exist simultaneously, and may be invoked depending on business rules or needs. In another scenario, specific process versions may be in use due to an active instance of a long running business process. The process version may get upgraded to a new version and future process instances may use the new version of the process. In one instance, this may give rise to a situation where multiple versions of the same process may be active simultaneously through separate process instances. Existing BPM Software supports some level of process archiving. However, recreating a previous version of an entire process instance or process execution, including, process version, input data or file, any referenced master data or master files, output data, and all associated metadata of the BPM, poses a significant challenge, and an even bigger challenge in a cloud computing environment.